package wili.logic;

import java.io.File;

import wili.c.Ca;
import wili.c.File9a;

/**
 * 逻辑式的缩进表达 ~> 单行表达 logic expression has and or node。 仅关注括号和逻辑联结词，不深入命题。
 */
public class ToLineLogicExp {

	ToIndentLogicNode root;
	Cont21 cont;

	static void test() {//${=(a && !(b || !(c && !d)) || f)}
		File file = new File("D:\\bearJ\\awilly\\src\\main\\java\\wili\\logic\\t.txt");
		Cont21 cont = new Cont21();
		String ret = lineExpOf(file, "&&", "||");
		Ca.log(1, "ToLineLogicExp,lineExp:" + ret);
	}

	public static void main(String[] args) {
		test();
	}

	/**
	 * 缩进表达式 ~>单行表达式。
	 *
	 * @param file
	 * @return
	 */
	public static String lineExpOf(File file, String andOp, String orOp) {
		String lines = File9a.strOfFile(file, "");
		String ret = lineExpOf(lines, andOp, orOp);
		return ret;
	}

	/**
	 * 缩进表达式 ~>单行表达式。
	 */
	public static String lineExpOf(String linesText, String andOp, String orOp) {
		/*
		
		 */
		Cont21 cont = new Cont21(andOp, orOp);
		String[] lines = linesText.split("\n");
		ToLineLogicNode node = ToLineLogicNode.newInst(lines, cont);
		String ret = node.toLineExpString();
		return ret;
	}

}
